home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / Python 1.4 / Python 1.4 source / Extensions / img / Lib / img.py next >
Encoding:
Python Source  |  1996-10-09  |  1.7 KB  |  74 lines  |  [TEXT/Pyth]

  1. """Easy-to-use wrapper module to read and write images in any format,
  2. using any incore representation
  3. """
  4.  
  5. ##import addpack
  6. ##addpack.addpack('/ufs/jack/src/python_mods/img')
  7. import imghdr
  8. import imgppm
  9. import imgpgm
  10. import imgpbm
  11. import imggif
  12. import imgsgi
  13. import imgjpeg
  14. import imgtiff
  15. import imgconvert
  16. import string
  17. import os
  18.  
  19. from imgconvert import setquality, settrace
  20.  
  21. _error = 'img._error'
  22. error = (_error, imggif.error, imgjpeg.error, imgpbm.error, imgpgm.error, 
  23.         imgppm.error, imgsgi.error, imgtiff.error)
  24.  
  25. unsupported_error = imgconvert.unsupported_error
  26.  
  27. filedict = {
  28.     'rgb': imgsgi,
  29.     'gif': imggif,
  30.     'pgm': imgpgm,
  31.     'ppm': imgppm,
  32.     'pbm': imgpbm,
  33.     'tiff': imgtiff,
  34.     'tif': imgtiff,
  35.     'jpeg': imgjpeg,
  36.     'jpg': imgjpeg
  37. }
  38.  
  39. def reader(fmt, filename):
  40.     """Read any imagefile into any in-core format.
  41.     The imagefile is examined to determine what it is.
  42.     Args: format, filename"""
  43.     
  44.     filetype = imghdr.what(filename)
  45.     if not filetype:
  46.     raise _error, 'Unknown image file type (bad magic number)'
  47.     if not filedict.has_key(filetype):
  48.     raise _error, 'No support for image file type: '+filetype
  49.     module = filedict[filetype]
  50.     rdr = module.reader(filename)
  51.     if fmt == None:
  52.     return rdr
  53.     else:
  54.     return imgconvert.stackreader(fmt, rdr)
  55.  
  56. def writer(fmt, filename):
  57.     """Write any format imagefile (decided from the extension) from
  58.     any in-core format picture.
  59.     Args: format, filename"""
  60.     
  61.     root, ext = os.path.splitext(filename)
  62.     if ext:
  63.     ext = ext[1:]
  64.     if not filedict.has_key(ext):
  65.     raise _error, 'No support for image file type: '+ext
  66.     module = filedict[ext]
  67.     wrr = module.writer(filename)
  68.     if fmt == None:
  69.     return wrr
  70.     else:
  71.     return imgconvert.stackwriter(fmt, wrr)
  72.     
  73.     
  74.